There are many different approaches for providing software applications and/or related functionalities. For example, in some paradigms, a client interfaces with an application server executing application code, and the application server interfaces with a database to store, access, or manipulate application data.
Some applications are written and constructed using application objects. Such application objects may contain relevant data, as well as logic and rules for processing data, or for interfacing with other application objects, or otherwise providing desired software functionality.
As the application objects are generally discrete and potentially specific to associated contexts, there may be inefficiencies related to using such application objects. For example, it may be undesirably necessary to repeat a single function or aspect across each of a plurality of application objects, which may lead to redundant and inefficient development efforts on the part of application object developers.
A software application may be developed and sold to a plurality of purchasers/customers, each of which may have specialized needs or requirements with respect to the software application. It is difficult or impossible for a software provider to provide the software application with all the features necessary to meet all of these needs or requirements. Moreover, the needs or requirements of a customer may change over time.